Gerhop, проверь занесены ли даммики в группу. Если занесены и триггер у тебя включен, то хоть что-то должно происходить. НО на гуи такое сделать сложно и нефиг делать хотя бы из-за того, что играть ты сможешь ну максимум минут 20. Потом вар скрашится на рабочий стол.
К сожалению, таким способом будут работать только башни, улучшенные до Башни Стрелка во время игры. Если изначально на карте стоят Башни Стрелки, они работать не будут. Если надо могу исправить.
Исправил. Теперь Башни Стрелки, поставленные на карту в редакторе будут работать так же, как те, что были улучшены во время игры.
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
Можно от даммика развеяние нежити за 0.01 сек.
Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
Создаешь две переменные - TempPoint (тип - точка), TempUnit (тип - боевая единица)
Событие - Приводит способность в действие
Условие - Применяемая способность = "Твоя способность"
Действия:
TempPoint = позиция применяющего юнита
TempUnit = Создать твоего дамми в TempPoint
Создать таймер смерти для TempUnit на 1.0 секунд
Заставить юнита выполнить приказ (тут уже сам разберешься)
Custom Script'ом вводишь код: call RemoveLocation(udg_TempPoint)
А вообще, если у тебя более-менее серьезный проект, то советую перейти на Джасс, ибо на ГУИ в картах ниже быстродействие из-за дополнительных вызовов через БЖ-функции, а также утечки, которые как ни крути не устранишь полностью. Да и сам Джасс гораздо удобнее и функциональнее
Может надо переустановить варик? Просто в Way of Others'е у меня было именно так я переустановил его и всё нормально.
А карту сохранить в другой папке.
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Я не понимаю как сделать, чтобы юнит применял способность для применения которой не нужно выбирать цель каста
Если сменить удар грома, на скил полиморф(он как правило требует чтобы игрок выбрал скил и кликнул по противнику) то этот тригер запашет
Проблема в том что Действие: Боевая единица: приказать юнит2 (юнит, его способность) юнит1 , способности нет в списке
Проверил с 3-мя юнитами бить типа со скилом, ток тогда и кастит
Поставить таймер на 10 минут и забрать способность. Пример: Заклинание, которое даёт юниту способность на определённое время.
scope SwordCharge initializer Init
{
private int SCharge = 'A000'//Id of used ability
private real SCT = 20.//Time
private int SCB = 'A001' Given ability
private void SCTimer()
{
timer t = GetExpiredTimer()
int id = GetHandleId(t)
unit u = LoadUnitHandle(H, GetHandleId(t), 0)
UnitRemoveAbility(u, SCB)
PauseTimer(t)
DestroyTimer(t)
u = null
t = null
}
private void Actions()
{
timer t = CreateTimer()
unit u = GetSpellAbilityUnit()
SaveUnitHandle(H, GetHandleId(t), 0, u)
UnitAddAbility(u, SCB)
TimerStart(t, SCT, false, function SCTimer)
t = null
u = null
}
void Init(){
trigger SwordChargeTrg = new trigger;
TriggerRegisterAnyUnitEventBJ(SwordChargeTrg, EVENT_PLAYER_UNIT_SPELL_EFFECT)
TriggerAddCondition(SwordChargeTrg, Condition(function Conditions))
TriggerAddAction( SwordChargeTrg, function Actions)
}
}
Засовываем змеиную ловкость в спелбук, а спелбук блокируем командой "Игрок - Enable/Disable Ability". В скрытый спелбук можно добавлять только пассиные способности. Ищи на тему как скрыть способность, иконку/кнопку способности. xgm.guru/forum/showthread.php?t=31722 И называйте норм тему
необязательно делать два триггера, можно сделать 1 с этим событием с условием (Владелец (Переключающий юнит)) равно Нейтрально-враждебный а остальные условия поместить в отдельный if/then/else multiple conditions, хз как называется этот пункт в русском редакторе, но он где-то в первых 15 строчках.
Хотя знаешь мне лень писать, вот так можно сделать в твоём случае
Если ты хочешь посылать куда-то юниты, то лучше давай их другому игроку, не нейтрально-враждебному
В русских триггерах переключающий юнит (в англ. триггерах triggering unit) - это юнит, на которого ссылается триггер. Эти все переменные зависят от событии. Вот в событий - юнит умирает, две переменные - это умирающий юнит (Dying unit), и убийца (Kiling unit). Конкретно триггер ссылается на умирающего юнита, то есть здесь
умирающий юнит = переключающий
Есть много похожих событий, где встречается переключающий.
Например, в событий "юнит применяет способность" выделяются две переменные "кастер" (англ. Casting unit) и "юнит-цель" (Target unit of ability being cast). Конкретно триггер ссылается на кастера.
кастер = переключающий
или например в событий юнит - получил приказ
выделяется переменная "юнит-получил приказ" (ordered unit) и цель (если есть, а то есть приказы без цели)
юнит, получивший приказ = переключающий
часто удобно еще владельца переключающего юнита находить
обычно пишут владелец переключающего юнита, а надо бы trigger player (переключающий игрок)
как называется юнит который начал строительство?
я хочу убить юнита который начал строительство
в событии - юнит начинает строительство
есть переменная : строящее здание (Consrtucting structure)
в событии - юнит завершает строительство
переменная завершенная постройка (Consrtuctied structure).
Конкретно события ссылаются на строящее здание, то есть переключающий юнит = здание. А вот строителя нельзя найти.
и мне нужно чтобы здание, строительство которого было начало мгновенно построилось!
но когда я ставлю триггерно
Боевая единица- Определить [Сооружает структуру] процесс строительства [100%]
у меня действительно ставиться полоса строительства как 100% но само строительство не заканчивается. :(
получается стоит стройка здания которое построилось на 100%
Ты про ту функцию
native UnitSetConstructionProgress takes unit whichUnit, integer constructionPercentage returns nothing
Боевая единица - Set Building Construction Progress
чего-то тоже у меня не работает эта функция совсем, может не правильно юзаю, на форуме мало что нашел.
чего-то тоже у меня не работает эта функция совсем, может не правильно юзаю, на форуме мало что нашел.
Короче заработало.
Если рабочий будет строить, а ты в это время воспользуешься этой функции по "событию - юнит начинает строительство" ничего не сработает. Странно как-то. Нужно добавлять 100% после некоторого времени. Спустя 0,01 секунду.
Убрать рабочего после того как в начале возведет фундамент, так да, полоска в 100% то останется =(( Полоска убирается, если рабочий придет и достроит (хотя уже достраивать нечего =( , полное хп )
У рабочего есть способность "ремонтировать". Там надо смотреть.
Советую так:
Юнит - начинает строительство
действие - ждать 0,01 секунд
действие - Боевая единица- Определить [Сооружает структуру] процесс строительства [100%]
следующий момент
юнит - завершает строительство
действие - удалить или убить строителя
Кстати в событий "юнит завершает строительство" и "юнит завершает строительство" нет ссылки на строителя. Только на построенное только что здание. Но эта проблема решаема. Нужно отслеживать приказ строителя, только на форуме одному делал наработку найти не могу, не пойму как делал
как отследить строителя, это делается по приказу
851994 (buildmenu): Приказ (без указания цели), открывающий меню строительства воина, способного возводить здания.
событие - юнит отдал приказ без цели
условие - целочисленное (id приказ) = 851994
приказ 851994 почему-то не отслеживается, он лишь позволяет открыть меню строительства. не катит. пробую тогда потом другое выбираем постройку в меню строительства, и строитель бежит строить.
событие - юнит отдал приказ цель
условие - классификация цели = здание или дерево
казалось бы все так, но недостаток в том, что он может за это время, пока бежит к точке строительства, передумать по желанию игрока. Поэтому надо смотреть, заранее там кучу событий и условии, короче проверок что если там пойдет не так
событие - юнит отдал приказ цель
условие - приказ = repair
можно использовать приказ repair. Короче от способности "ремонтировать" При строительстве и ремонте у орков и людей есть такая фишка. А вот у эльфов нет. Недостаток конечно. И еще рабочий может пойти ремонтировать здание, однако тут срабатывает приказ "smart", который равнозначен "repair". Когда строит/ремонтирует работник можно выяснить текущий приказ. У работника в этот может приказ repair а у светлячка при строительстве id здания, а при ремонте у светлячка id от "обновление".
VetsaN, таких событий нету
надо записывать все предметы в бд и периодическим таймером отслеживать их состояние
смерть предмета можно отследить с помощью TriggerRegisterDeathEvent но её использование нежелательно
либо делай все предметы юнитами
вот статья про бд
GearOfRage, в данном случае надо тестировать кампанию, а не саму карту. Открываешь через игру доп кампанию и играешь нужную миссию (для этого надо сделать все миссии временно доступными)
предмет это просто иконка которая содержит способности
книга заклинания это способность
и редактировать нужно способность "книга заклинаний"
или создать на её основе новую способность "моя книга заклинаний"
а потом у предмета просто указать способность "моя книга заклинаний"
если не хватает знаний то их можно пополнить в статьях
Ты так описал, что я тоже запутался. Но реализовать это можно только заменой скиллов. Чтобы душа не терялась, нужно хранить её в отдельной переменной (или в Custom Value юнита, например) и в зависимости от значения переменной ставить нужную версию скилла.
а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
Можно от даммика развеяние нежити за 0.01 сек.
Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
Если светлячок крип, то по достижению N уровня герой начинает получать меньше опыта от его убийства
На скриншоте показана сама строка отвечающая за набираемый героем опыт от крипов в %
На мой взгляд легче сделать триггер-базу данных и отлавливать смерть юнита, а далее через Если То Иначе сделать получение опыта на каждый тип юнитов.
если ты про поля РО с описаниями - пока никак
драколич там вроде с рб (ретурн баг) балуется, но инфы нет и не было пока что
а если ты про сообщения в игре - преобразование переменной в строку
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Мда, кто так делает а? Требование лиж закрывает иконку, эффект то пассивка дает всегда, и пофигу её что там за требование..
Повышай броню так или делай другой эффект улучшения - Способность на уровень.
Сделай 2 уровня у твоих Рунических браслетов на 1 уровне сделай бонус брони 0 а на втором какой хочешь, потом с помощью апгрейда повышай уровень способности (а вы не знали что апгрейды могут повышать уровни способностям, изменять данные аур и так далее?)
на сколько я понял проблема в том что после смерти способность не удаляется
тогда нужен триггер с событием юнит умирает
и если юнит герой то удалять эту способность Melissa:
Ну и если вдруг скилл используют одновременно или почти одновременно десятки юнитов - то не у всех панцирь будет корректно удаляться.
Nifistofi, насколько я понял тебе нужна пасивка легиона
вместо получает урон используй событие юнит атакован
проверяй наличие бафа (баф даёт +400 к скорости атаки и длится n секунд)
если бафа нету и твоё условие верно то
вешай на него баф
иначе
удаляй баф
твоё условие это условие при котором должен срабатывать двойной удар
например "с момента последнего двойного удара прошло 5 секунд" (на гуи это условие сложно сделать)
или "шанс 25%"
Тебе нужно чтоли похищение маны чародея крови которое не чаннелинг?
Ну это триггерная версия манасоалки, идем в заклинания на заказ или реализуем сами (наработка для работы с эффектами молнии была на сайте).
Если тебе нужна способность при применении которой бы не сбивались никакие чаннелинги, значит тебе нужены способности не сбивающие текущие приказы мага а их 7 на весь варкравт. Absk, Adef, Amdf, ANms, AEim, AHds, AOwk (Безумие, Укрыться за щитом, Магическая защита, Магический щит, Жар преисподней, Божественный щит, Стремительность)
Через кешь сохраняется только дефолт вроде, сохраняй ид героя, его статы, уровень и уровень каждой способности в отдельности, а потом воссоздавай и таких проблем не будет.
Askarto,
Текстуры ландшафта находятся в файлах War3.mpq и War3x.mpq
в папке \TerrainArt\
Пример:
Распаковываешь \TerrainArt\Cityscape\City_GrassTrim.blp Перерисовываешь как надо, закидываешь в карту по этому же адресу. Город - Газон будет выглядеть так как нарисуешь :)
чтобы они ещё и окрашивали друг друга, по типу как вот здесь?
Вот это не понял.
Кто знает как накладывать текстуры друг на друга
Если это сделано средствами mdx, то тут в материале два слоя с разными текстурами. У верхнего режим фильтрации Transparent. Материалы можно редактировать через War3 Model Editor, модуль Material Manager. (Думаю, ты примерно знаешь, как =)
как импоритровать анимации мастера клинка в неё FAQ не помогло. Мне надо либо все движения перенести в модель либо только рук
Ну так не получится. Можно заменить скелет вместе с анимациями — это будет пересадка мяса. Или сделать анимацию с нуля — тут в помощь эта статья (только скелет создавать не придётся, он уже есть).
Diazon, а чем сам манабёрн не подходит? Дай еще своим монстрам класс вызванные, будет им+ 20 чистого дмг и спецэффект манабёрна (цвет тока будет не розовый, а желтоватый у спецэффекта )
Манаберн наносит доп урона суммонам, но является орбом (не сочетается с другими орбами ) , хотя тесты и показали что манабёрн ближе по механике к критам чем к орбам и башам...
Как это нету, в гуях есть эта функция: Раздел - Боевая единица, почти самый низ.
Удалить классификацию уже поставиленную в ро низя, как и поставить полноценную классификацию юниту у которого она не установлена в РО, к примеру работник сделанный триггерно будет проходить проверку - работник но не будет отображаться как незанятый работник, когда он стоит на месте.
Тот факт, что модель открывается в мдлвиз вовсе не гарантирует открываемость в редакторе или в игре.
Советую взять на заметку даже более того - в мдлвизе вполне реально запороть модель, причём в самом мдлвизе никаких проблем ты не увидишь а редактор и игра будут вылетать.
По импорту с других игр к сожалению ничего не могу добавить к общим сведениям, указанным выше. Перечитай статьи и убедись, что всё делаешь в точности.
что значит не открывается?
не открывается в мдлвизе?
или не видна в вар3
если не видна в вар3 то скорее всего ты не импортировал текстуры в карту
посмотри какие текстуры нужны для модели и импортируй их
Модель битая или текстуры не в соответствующем качестве. Раздел текстур модели вроде бы прописан верно. Количество текстур и пути тоже в порядке. Но не импортируется как должно. Замени модель на другую.
Попробуй эту версию
Да, эта работает. В анимации stand видимость была не задана. Да там собственно и анимаций никаких нет.
Но выглядит она как-то не красиво. Второй вариант (1а) получше- тектстуры ОК
Вот он
Видимо єта кнопка тесно спряжена с более низкими слоями игры (чит. "hardcoded"). Похоже, что скрыть её нельзя. Я могу только посоветовать вернуться назад и посмотреть, что можно сделать по-другому, чтобы не приходилось скрывать кнопку.
Порыть там надо, во всяком случае стандартные приказы, иконки и клавиши к ним там прописаны.
(естесственно нужно импоритровать эти изменённые файлики в карту)
Я пробовал прописывать кнопке неадекватные значения позиции кнопки и пиктограммы, но ничего не вышло — игра подставляет свои значения.
ИИ стандартный, полагаю? Стандартному ИИ вроде как вижн не важен, он и так знает где все находятся, если мне не изменяет память. Как от него не прячься, найдет сразу. Если уж очень хочется - давать юнитов нейтралам и делать их союзным всем ботам. (игроков 16, если не изменяет память). Или давать союзным игрокам, при наличии. По крайней мере не будут мчаться в след за армией. Однако вполне могут быть более качественные решения проблемы, я стандартный ИИ не изучал, не могу быть уверен в офигительности предложенного решения. :)
» WarCraft 3 / Проблемы с дамми юнитами
» WarCraft 3 / Ошибка при сохранении карты
» WarCraft 3 / Помогите со способностью
» WarCraft 3 / Помогите с триггером
» WarCraft 3 / Создание предметов.
» WarCraft 3 / Триггерно выучить скилы герою.
» WarCraft 3 / Зависимости от типа юнита у заклинаний
» WarCraft 3 / Как лимитировать героев?
» WarCraft 3 / Проблемы с новой расой
» WarCraft 3 / Константы
» WarCraft 3 / Помогите создать способность
» WarCraft 3 / Орб Эффекты
» WarCraft 3 / Скилл
» WarCraft 3 / model editor
» WarCraft 3 / Текстурирование
» WarCraft 3 / Классификация юнита
» WarCraft 3 / Перенос из одной карты в другую
» WarCraft 3 / Модель не открывается
» WarCraft 3 / Ошибка с моделю
» WarCraft 3 / Приказ на строительство